// 编写 用户接口
let express = require("express");
let {getIpAddress} = require('../utils/ip')
let ip = getIpAddress();
let router = express.Router();
let {readFun,writeFun} = require("../utils/readOrwirte")
//  用户注册接口
router.post("/regiest", async (req,res)=>{
    // 获取前端传递的用户名密码
    let {username,password} = req.body;
    // 读取存放用户注册信息的user.json文件
    let data = await readFun("./data/user.json");
    // 判断当前要注册的用户名是否在data中
    let index = data.findIndex(item=>{
       return item.username === username
    })
    if(index!==-1){
        res.send({
            code:1,
            msg:"当前用户已注册"
        })
        return
    }
    // 将用户注册信息添加到data中
    data.push({username,password,header:`http://${ip}:9090/header/default.png`});
    // 将最新的用户列表写入 user.json
    await writeFun("./data/user.json",JSON.stringify(data));
    res.send({
        code:0,
        msg:"注册成功"
    })
})

//  用户登录接口
router.post("/login",async (req,res)=>{
    let {username,password} = req.body;
    // 读取存储用户信息的json文件
    let data = await readFun("./data/user.json");
    // 判断当前登录的用户是否在data中 
    let index = data.findIndex(item=>{
        return item.username === username;
    })
    if(index===-1){
        res.send({
            code:1,
            msg:"该用户未注册"
        })
        return;
    }
    // 若index不等于1则表示该用户注册了需要判断密码是否正确
    // 根据索引获取当前用户密码
    let userPassword = data[index].password;
    if(password !==userPassword){
        res.send({
            code:1,
            msg:"密码错误"
        })
        return
    }
    // 若登录成功给客户端设置cookie 保持登录状态
    res.cookie("username",username)
    res.send({
        code:0,
        msg:"登录成功"
    })
})

// 判断用户是否登录
router.get("/isLogin",(req,res)=>{
    // 获取前端传递的cookie，若有username 则表示当前用户为登录状态
    let username = req.cookies.username;
    if(username){
        res.send({
            code:0,
            msg:"已登录",
            data:{
                username:username,
            }
        })
    }else{
        res.send({
            code:1,
            msg:"未登录"
        })
    }
})
// 退出登录接口
router.get("/outLogin",(req,res)=>{
    // 删除客户端cookie实现退出功能
    res.clearCookie("username");
    res.send({
        code:0,
        msg:"安全退出"
    })
})

// 获取用户头像
router.get("/userPhoto", async (req,res)=>{
    let username = req.cookies.username;
    let data = await readFun("./data/user.json");
    // 根据当前登录用户找到其索引
    let index = data.findIndex(item=>{
        return item.username === username;
    })
    if(index===-1){
        res.send({
            code:1,
            msg:"非法用户"
        })
        return
    }
    // 根据索引获取当前登录用户的头像地址
    let url =data[index].header;
    res.send({
        code:0,
        msg:"获取成功",
        url:url
    })
})
module.exports = router;